Chat — normal conversation view focused on the final assistant response.
Trace — timeline of agent activity: tool calls, peer messaging, tool results, and spawned child work.
Prompt — request inspector showing prompt/tool payload details sent to the model.
Pick a conversation or start a new one.
What is Assistant?
Everything Assistant knows, can do, and remembers — laid out as a tree. Click any leaf to see the actual content.
The parts of Assistant
Assistant is a few orthogonal pieces. They mix and match.
project
A bundle of skills, memories, and tools for one domain (e.g. client-acme). Activate one in Settings; its contents layer on top of the universal layer for the whole conversation.
skill
A markdown file loaded into Assistant's system prompt. Tells Assistant how to use his tools — conventions, things to avoid, where files live, your tone preferences. Skills are advice, not code. Editable here.
memory
A markdown file Assistant writes for himself (via the remember tool) to carry knowledge across conversations. You can also write or edit them directly. Loaded into the system prompt every turn until forgotten.
tool
A callable function (read_file, run_shell, …). All tools are *.cjs modules under assistant-data/tools/ (global) or projects/<name>/tools/ (when that project is active). Shipped defaults seed on first run; add or edit files anytime.
connector
Inbound surfaces: web (this UI), slack (Socket Mode), discord, teams (Bot Framework HTTP), mail (generic IMAP/SMTP — not Mail). Configure in Settings → Connectors.
integration
A configured connection to a third-party service (outbound) — GitHub, Jira, Rovi, etc. Types live under integrations/types/; instances and credentials are stored here. Tools for a type appear only when an instance exists.
trigger
A schedule (cron) that fires Assistant on its own — no human needed. Each fire spawns a task. Mode auto runs unattended; review waits for your approval before running.
task
An instance of agent work that ran (or is running) without you typing — spawned by a trigger or created ad-hoc. Each has its own conversation transcript you can open.
persona
Who Assistant is — identity, voice, role. Markdown in personas/, optionally with behaviors.cjs hooks. The active one prefixes every system prompt. ★ marks active.
swarm
A live Assistant process in the swarm. Each has its own UUID, name, port, database, and personality. ★ marks you. Spawn new ones with the spawn_child tool; talk to existing ones with message_peer.
contact
Another assistant on machine you can reach over HTTP — cross-machine address book. Drop a JSON file into contacts/ with name, url, and shared token. Then message_peer(target="contact:name") reaches them. Follow-up messages from the same sender reuse one peer thread on the recipient (like Slack threads).
provider
An LLM backend — one *.json file in providers/ (Anthropic, OpenAI, Ollama, LM Studio via openai_compatible, etc.). Pick the active one in Settings. Add new files anytime; no rebuild.
MCP
External tool servers (stdio) merged into the tool list — community packages via npx. Configure in Settings → MCP or mcp_config.json. Use when you want third-party tools without writing a .cjs module.
Skill vs memory? Skills are your instructions to Assistant (curated, persistent). Memories are Assistant's own notes, written as he learns. Both end up in the system prompt, but they signal different intent.
Connector vs integration? Connector = how someone reaches Assistant. Integration = how Assistant reaches some service. Different directions.
Build your own agent? Everything under ~/.ollie-assistant/assistant-data/ is editable — personas, skills, tools (*.cjs), providers (*.json), integration types (integrations/types/), projects. Shipped defaults seed on first run; your files use the same formats. Restart after editing tools or integration types; MCP reloads from Settings.
Letters, digits, hyphens, underscores. Becomes the filename.
New project
Creates projects/<name>/ with empty skills, memories, tools subdirs.
Lowercase letters, digits, hyphens. Start with letter or digit.
Where the actual code lives. Assistant uses this as default cwd for git/shell.
Conversation details
…
ID—
Source—
Title—
Created—
Updated—
Messages—
New trigger
A scheduled prompt that fires Assistant on a cron — the task it spawns can be set to run automatically or wait for your approval.
*/30 * * * * every 30 min · 0 9 * * 1 Mon 9am UTC ·
0 0 1 * * first of month
POST JSON here to spawn a task. Optional body field prompt overrides the default prompt for that firing.
Sets the project context for the duration of the task so that project skills and memories apply.
New integration
External services Assistant can reach into. Tools depending on a type only load when one is configured.
A label to tell instances apart. Defaults to the type label.
Settings
Saved locally in assistant.db on this machine.
Swarm display name
Shown in the title bar, Hub, and message_peer. Saved under assistant-data/swarm/display-name.json. On startup, OLLIE_ASSISTANT_NAME / OLLIE_CHILD_NAME overrides the saved file when set.
Active Persona
Who Assistant *is* — identity, voice, role. Drop new personas into personas/. Switching is live (no restart).
Active Project
Domain context — which codebase Assistant is working on. Layered on top of the persona. Manage projects in the Explorer (folder-tree icon).
LLM Provider
Loaded from assistant-data/providers/*.json. Add or edit provider files on disk, or save here to update the active provider.
Anthropic: claude-sonnet-4-6, claude-opus-4-7. OpenAI: gpt-4o, gpt-4o-mini, o1. Gemini: gemini-2.5-pro, gemini-2.5-flash, gemini-2.0-flash. Ollama: any local tag like llama3.1:8b, qwen2.5:7b. Intelligence: the GGUF id (filename without .gguf); load the model in Intelligence first or it will auto-load from disk.
Get one at console.anthropic.com/settings/keys. Leave blank to keep the existing value.
Get one at platform.openai.com/api-keys. Leave blank to keep the existing value.
Get one at aistudio.google.com/app/apikey. Uses Google's OpenAI-compatible endpoint, so vision and tool calling work.
Default http://localhost:11434. Make sure ollama serve is running and the model is pulled (ollama pull llama3.1). Tool use needs a tool-capable model.
Default http://127.0.0.1:19004. Run the Intelligence app; models live under ~/.ollie-intelligence/models/. Separate from Ollama.
Run Configuration
Max tokens the model can generate per turn. Leave blank for the default (4096).
Token window size for the model context. Ollama supports this directly via num_ctx; most hosted providers use model-defined limits and may ignore this value.
Timeout for a model request. Useful for remote Ollama hosts. Leave blank for default (120000).
Retries before surfacing a request failure. Retry status is shown in Trace. Leave blank for default (2).
Base delay before retries (exponential backoff). Leave blank for default (1200).
How many tool-use loops the agent can run in a single turn before stopping. Leave blank for the default (25).
Sampling temperature — lower is more deterministic, higher is more varied. Leave blank to use the provider default. Range 0–2; not all providers support values above 1.
Voice & audio
Used for voice mode. Browser: built-in speech recognition + browser voices (Chrome/Edge best on Linux). Electron on Linux: mic opens Chrome/Chromium if installed, otherwise your default browser — use the mic in that tab. Electron on Windows/macOS: OS speech recognition and native TTS.
Test tone uses this output. Spoken replies use the browser TTS engine, which usually follows the system default speaker — output routing depends on Chrome/Electron support for setSinkId.
Voice for Ollie's spoken replies in voice mode. Saved per browser profile on this machine.
Quiet background hum while Ollie is thinking or using tools. Set to 0 to turn off.
Short phrases like “Thinking” or tool names while work is in progress. Final answers are always spoken when voice mode is on.
Web access users
Master-only. Accounts for signing into this Assistant over the network. Master username is always master (the password you set on first run). Add users below for everyone else.
Loading…
After you create the user, a QR code appears — scan it in Google Authenticator, 1Password, Authy, etc.
MCP (external tools)
Loading…
Stdio MCP servers merged into the tool list. Saved to ~/.ollie-assistant/mcp_config.json.
Set up authenticator
Scan this QR code in your authenticator app. This secret is shown once — save it before closing.
Configure Connector
Leave blank to keep the existing value. Type - to clear.
Required for Socket Mode. Leave blank to keep; - to clear.
Requires both tokens above. Replies in a thread under each message. Restarts on save.
Enable Message Content Intent in the Discord portal. Leave blank to keep; - to clear.